package Gather.MapExercise.MapDome;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * ClassName:MapText004
 * Package:Gather.MapExercise
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/2/20-18:42
 * @Version:v1.0
 */
public class MapText004 {
    /*Map集合的第二种遍历方式*/
    public static void main(String[] args) {
        //创建Map集合对象
        Map<String, String> map = new HashMap<>();
        //添加元素
        //键：人物的外号
        //值：人物的名字
        map.put("标枪选手", "马超");
        map.put("人物挂件", "明世隐");
        map.put("御龙骑士", "尹志平");
        //Map集合的第二种遍历方式
        //通过键值对对象进行遍历
        //1.通过一个方法获取所有的键值对对象,返回一个Set集合
        Set<Map.Entry<String, String>> entries = map.entrySet();
        //2.遍历entries这集合,去得到里面的每一个键值对对象
        for (Map.Entry<String, String> entry : entries) {
            //利用entry调用get方法获取键和值
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key + ":" + value);
        }
        System.out.println("--Lambda表达式遍历--");
        entries.forEach(stringStringEntry -> System.out.println(stringStringEntry));

        System.out.println("--迭代器遍历--");
        Iterator<Map.Entry<String, String>> it = entries.iterator();
        while (it.hasNext()) {
            String str = String.valueOf(it.next());
            System.out.println(str);
        }

        System.out.println("--增强for遍历--");
        for (Map.Entry<String, String> entry : entries) {
            System.out.println(entry);
        }
    }
}
